package com.yuju.vo.account;

import java.math.BigDecimal;
import java.util.Date;

import com.yuju.common.BaseVO;
import com.yuju.common.fileld.validator.Rule.NonNull;

/**
 * 类名：UnitAccountVO  <br />
 *
 * 功能：
 *
 * @author : jiaokn <br />
 * @Date : 2017年11月27日 下午1:52:32  <br />
 * @version : 1.1 <br />
 */
public class UnitAccountVO extends BaseVO {
	 /**
     *  主键。存储UUID，由应用生成。,所属表字段为acc_unit_account.id
     */
    private String id;

    /**
     *  账务类型。1收入SR（夜审房费等应收）、2结算JS（实际收款）。,所属表字段为acc_unit_account.account_type
     */
    private Byte accountType;
    
    /**
     *  流水号。,所属表字段为acc_unit_account.account_code
     */
    private String accountCode;

    /**
     *  营业项目。,所属表字段为acc_unit_account.business_type
     */
    private Byte businessType;

    /**
     *  营业项目名称。,所属表字段为acc_unit_account.business_type_name
     */
    private String businessTypeName;

    /**
     *  营业项目分类。指具体营业项目下的具体分类。,所属表字段为acc_unit_account.business_type_detail
     */
    private Byte businessTypeDetail;

    /**
     *  营业项目类型名称。,所属表字段为acc_unit_account.business_type_detail_name
     */
    private String businessTypeDetailName;

    /**
     *  营业详情。,所属表字段为acc_unit_account.business_detail
     */
    private String businessDetail;

    /**
     *  客户ID。根据客户类型，对应表中的主键。,所属表字段为acc_unit_account.custom_id
     */
    private String customId;

    /**
     *  客户类型。,所属表字段为acc_unit_account.custom_type
     */
    private Byte customType;

    /**
     *  金额。,所属表字段为acc_unit_account.money
     */
    private BigDecimal money;

    /**
     *  ,所属表字段为acc_unit_account.class_no
     */
    private String classNo;

    /**
     *  票据号。,所属表字段为acc_unit_account.voucher_no
     */
    private String voucherNo;

    /**
     *  备注。,所属表字段为acc_unit_account.remark
     */
    private String remark;
    
    /**
     *  账务状态。,所属表字段为acc_unit_account.account_status
     */
    private Byte accountStatus;

    /**
     *  账务状态名称。,所属表字段为acc_unit_account.account_status_name
     */
    private String accountStatusName;

    /**
     *  是否结账。1表示已结，2表示未结，默认为未结2。,所属表字段为acc_unit_account.is_settle
     */
    private Byte isSettle;

    /**
     *  ,所属表字段为acc_unit_account.settle_time
     */
    private Date settleTime;

    /**
     *  ,所属表字段为acc_unit_account.account_book_id
     */
    private String accountBookId;

    /**
     *  创建用户ID。外键，引用员工表（grp_employee）的主键（id）。,所属表字段为acc_unit_account.create_user_id
     */
    private String createUserId;

    /**
     *  更新用户ID。外键，引用员工表（grp_employee）的主键（id）。,所属表字段为acc_unit_account.update_user_id
     */
    private String updateUserId;

    /**
     *  房间订单ID。外键，引用房间订单表（ord_room_order）的主键（id）。,所属表字段为acc_unit_account.room_order_id
     */
    private String roomOrderId;

    /**
     *  是否逻辑删除。1表示已逻辑删除，2表示未逻辑删除，默认为2。,所属表字段为acc_unit_account.is_deleted
     */
    private Byte isDeleted;

    /**
     *  创建时间。,所属表字段为acc_unit_account.gmt_create
     */
    private Date gmtCreate;

    /**
     *  修改时间。,所属表字段为acc_unit_account.gmt_modified
     */
    private Date gmtModified;

    /**
     *  所属酒店。外键，引用酒店信息表（grp_hotel）的主键（id）。,所属表字段为acc_unit_account.hotel_id
     */
    private String hotelId;

    /**
     *  所属集团。外键，引用集团信息表（grp_group）的主键（id）。,所属表字段为acc_unit_account.group_id
     */
    private String groupId;

    /**
     *  预订ID。外键，引用预订信息表（ord_reserve）的主键（id）。,所属表字段为acc_unit_account.reserve_id
     */
    private String reserveId;
    /**  
     * checkinTime : 入住时间
     */
    private Date checkinTime;
    /**  
     * checkoutTime : 离店时间
     */
    private Date checkoutTime;
    
    /**  
     * roomCode : 房间号
     */
    private String roomCode;
    /**  
     * roomTypeName : 房型名称
     */
    private String roomTypeName;
    /**  
     * guestName : 客人姓名
     */
    private String guestName;
    /**  
     * certificateCode : 证件号
     */
    private String certificateCode;
    /**  
     * customName : 单位名称
     */
    private String customName;
    
    /**  
     * startCheckinTime : 入住开始时间
     */
    private Date startCheckinTime;
    /**  
     * endCheckinTime : 入住结束时间
     */
    private Date endCheckinTime;
    /**  
     * startCreateTime : 创建开始时间
     */
    private Date startCreateTime;
    /**  
     * endCreateTime :  创建结束时间
     */
    private Date endCreateTime;
    
    /**  
     * isSelect : 是否选择账务的标识
     */
    private Byte isSelect;
    
	// 每页显示记录数
	@NonNull(message = "每页显示行数不能为空", serviceLine = "pager")
	private Integer pageSize;

	// 当前页码
	@NonNull(message = "页数不能为空", serviceLine = "pager")
	private Integer page;
    

	public Integer getPageSize() {
		return pageSize;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public Date getCheckinTime() {
		return checkinTime;
	}

	public void setCheckinTime(Date checkinTime) {
		this.checkinTime = checkinTime;
	}

	public Date getCheckoutTime() {
		return checkoutTime;
	}

	public void setCheckoutTime(Date checkoutTime) {
		this.checkoutTime = checkoutTime;
	}

	public String getRoomCode() {
		return roomCode;
	}

	public void setRoomCode(String roomCode) {
		this.roomCode = roomCode;
	}

	public String getRoomTypeName() {
		return roomTypeName;
	}

	public void setRoomTypeName(String roomTypeName) {
		this.roomTypeName = roomTypeName;
	}

	public String getGuestName() {
		return guestName;
	}

	public void setGuestName(String guestName) {
		this.guestName = guestName;
	}

	public String getCertificateCode() {
		return certificateCode;
	}

	public void setCertificateCode(String certificateCode) {
		this.certificateCode = certificateCode;
	}

	public String getCustomName() {
		return customName;
	}

	public void setCustomName(String customName) {
		this.customName = customName;
	}

	public Date getStartCheckinTime() {
		return startCheckinTime;
	}

	public void setStartCheckinTime(Date startCheckinTime) {
		this.startCheckinTime = startCheckinTime;
	}

	public Date getEndCheckinTime() {
		return endCheckinTime;
	}

	public void setEndCheckinTime(Date endCheckinTime) {
		this.endCheckinTime = endCheckinTime;
	}

	public Date getStartCreateTime() {
		return startCreateTime;
	}

	public void setStartCreateTime(Date startCreateTime) {
		this.startCreateTime = startCreateTime;
	}

	public Date getEndCreateTime() {
		return endCreateTime;
	}

	public void setEndCreateTime(Date endCreateTime) {
		this.endCreateTime = endCreateTime;
	}

	private static final long serialVersionUID = 1L;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Byte getAccountType() {
        return accountType;
    }

    public void setAccountType(Byte accountType) {
        this.accountType = accountType;
    }

    public Byte getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Byte businessType) {
        this.businessType = businessType;
    }

    public String getBusinessTypeName() {
        return businessTypeName;
    }

    public void setBusinessTypeName(String businessTypeName) {
        this.businessTypeName = businessTypeName;
    }

    public Byte getBusinessTypeDetail() {
        return businessTypeDetail;
    }

    public void setBusinessTypeDetail(Byte businessTypeDetail) {
        this.businessTypeDetail = businessTypeDetail;
    }

    public String getBusinessTypeDetailName() {
        return businessTypeDetailName;
    }

    public void setBusinessTypeDetailName(String businessTypeDetailName) {
        this.businessTypeDetailName = businessTypeDetailName;
    }

    public String getBusinessDetail() {
        return businessDetail;
    }

    public void setBusinessDetail(String businessDetail) {
        this.businessDetail = businessDetail;
    }

    public String getCustomId() {
        return customId;
    }

    public void setCustomId(String customId) {
        this.customId = customId;
    }

    public Byte getCustomType() {
        return customType;
    }

    public void setCustomType(Byte customType) {
        this.customType = customType;
    }

    public BigDecimal getMoney() {
        return money;
    }

    public void setMoney(BigDecimal money) {
        this.money = money;
    }

    public String getClassNo() {
        return classNo;
    }

    public void setClassNo(String classNo) {
        this.classNo = classNo;
    }

    public String getVoucherNo() {
        return voucherNo;
    }

    public void setVoucherNo(String voucherNo) {
        this.voucherNo = voucherNo;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Byte getIsSettle() {
        return isSettle;
    }

    public void setIsSettle(Byte isSettle) {
        this.isSettle = isSettle;
    }

    public Date getSettleTime() {
        return settleTime;
    }

    public void setSettleTime(Date settleTime) {
        this.settleTime = settleTime;
    }

    public String getAccountBookId() {
        return accountBookId;
    }

    public void setAccountBookId(String accountBookId) {
        this.accountBookId = accountBookId;
    }

    public String getCreateUserId() {
        return createUserId;
    }

    public void setCreateUserId(String createUserId) {
        this.createUserId = createUserId;
    }

    public String getUpdateUserId() {
        return updateUserId;
    }

    public void setUpdateUserId(String updateUserId) {
        this.updateUserId = updateUserId;
    }

    public String getRoomOrderId() {
        return roomOrderId;
    }

    public void setRoomOrderId(String roomOrderId) {
        this.roomOrderId = roomOrderId;
    }

    public Byte getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Byte isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    public String getHotelId() {
        return hotelId;
    }

    public void setHotelId(String hotelId) {
        this.hotelId = hotelId;
    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }

    public String getReserveId() {
        return reserveId;
    }

    public void setReserveId(String reserveId) {
        this.reserveId = reserveId;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", accountType=").append(accountType);
        sb.append(", businessType=").append(businessType);
        sb.append(", businessTypeName=").append(businessTypeName);
        sb.append(", businessTypeDetail=").append(businessTypeDetail);
        sb.append(", businessTypeDetailName=").append(businessTypeDetailName);
        sb.append(", businessDetail=").append(businessDetail);
        sb.append(", customId=").append(customId);
        sb.append(", customType=").append(customType);
        sb.append(", money=").append(money);
        sb.append(", classNo=").append(classNo);
        sb.append(", voucherNo=").append(voucherNo);
        sb.append(", remark=").append(remark);
        sb.append(", isSettle=").append(isSettle);
        sb.append(", settleTime=").append(settleTime);
        sb.append(", accountBookId=").append(accountBookId);
        sb.append(", createUserId=").append(createUserId);
        sb.append(", updateUserId=").append(updateUserId);
        sb.append(", roomOrderId=").append(roomOrderId);
        sb.append(", isDeleted=").append(isDeleted);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", hotelId=").append(hotelId);
        sb.append(", groupId=").append(groupId);
        sb.append(", reserveId=").append(reserveId);
        sb.append("]");
        return sb.toString();
    }

	public Byte getAccountStatus() {
		return accountStatus;
	}

	public void setAccountStatus(Byte accountStatus) {
		this.accountStatus = accountStatus;
	}

	public String getAccountStatusName() {
		return accountStatusName;
	}

	public void setAccountStatusName(String accountStatusName) {
		this.accountStatusName = accountStatusName;
	}

	public Byte getIsSelect() {
		return isSelect;
	}

	public void setIsSelect(Byte isSelect) {
		this.isSelect = isSelect;
	}

	public String getAccountCode() {
		return accountCode;
	}

	public void setAccountCode(String accountCode) {
		this.accountCode = accountCode;
	}

}
